package com.ushio.capsuleservice.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ushio.capsuleservice.model.entity.Container;

import java.math.BigDecimal;
import java.util.List;

/**
 * 时间容器服务接口
 */
public interface ContainerService extends IService<Container> {

    List<Container> findByUserId(Long userId);

    boolean deleteByUserId(Long userId);
    
    /**
     * 创建时间容器
     */
    Container createContainer(Container container);
    
    /**
     * 分页获取用户的时间容器列表（支持完整搜索功能）
     */
    IPage<Container> getUserContainers(Long userId, int page, int size, Integer status, 
                                      String keyword, String category, String startDate, 
                                      String endDate, BigDecimal minScore, BigDecimal maxScore);
    
    /**
     * 获取时间容器详情
     */
    Container getContainerDetail(Long containerId);
    
    /**
     * 更新时间容器
     */
    Container updateContainer(Long containerId, Container container);
    
    /**
     * 结束时间容器
     * @param containerId 容器id
     */
    Container endContainer(Long containerId);
    
    /**
     * 删除时间容器
     */
    boolean deleteContainer(Long containerId);
    
    /**
     * 获取用户进行中的容器数量
     */
    long getActiveContainerCount(Long userId);
    
    /**
     * 根据计划ID获取绑定的容器列表
     * @param planId 计划ID
     * @return 容器列表
     */
    List<Container> getContainersByPlanId(Long planId);
}
